.TH std::shared_ptr::owner_equal 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::shared_ptr::owner_equal \- std::shared_ptr::owner_equal

.SH Synopsis
   template< class Y >
   bool owner_equal( const std::shared_ptr<Y>& other ) const          \fB(1)\fP (since C++26)
   noexcept;
   template< class Y >                                                \fB(2)\fP (since C++26)
   bool owner_equal( const std::weak_ptr<Y>& other ) const noexcept;

   Checks whether this shared_ptr and other share ownership or are both empty. The
   comparison is such that two smart pointers compare equivalent only if they are both
   empty or if they both own the same object, even if the values of the pointers
   obtained by get() are different (e.g. because they point at different subobjects
   within the same object).

   The member function owner_equal is an equivalence relation such that
   !owner_before(other) && !other.owner_before(*this) is true if and only if
   owner_equal(other) is true.

   This ordering is used to make shared and weak pointers usable as keys in unordered
   associative containers, typically through std::owner_equal.

.SH Parameters

   other - the std::shared_ptr or std::weak_ptr to be compared

.SH Return value

   true if *this and other share ownership or are both empty. Otherwise, returns false.

.SH Notes

           Feature-test macro          Value    Std                Feature
                                                      Enabling the use of
   __cpp_lib_smart_ptr_owner_equality 202306L (C++26) std::shared_ptr as keys in
                                                      unordered associative containers

.SH Example

    This section is incomplete
    Reason: example

.SH See also

   owner_equal provides mixed-type owner-based equal comparisons of shared and weak
   (C++26)     pointers
               \fI(class)\fP

.SH Category:
     * Todo with reason
